Those might trigger the destruction of some widget that would dispose the
event controller while the event is still being handled, so keep an extra
ref on the controller during event processing.
controller_class = GTK_EVENT_CONTROLLER_GET_CLASS (controller);
if (controller_class->handle_event)
- retval = controller_class->handle_event (controller, event);
+ {
+ g_object_ref (controller);
+ retval = controller_class->handle_event (controller, event);
+ g_object_unref (controller);
+ }
return retval;
}